<?php

declare(strict_types=1);
/**
 * This file is part of Hyperf.
 *
 * @link     https://www.hyperf.io
 * @document https://doc.hyperf.io
 * @contact  group@hyperf.io
 * @license  https://github.com/hyperf-cloud/hyperf/blob/master/LICENSE
 */

namespace App\Controller;

use App\Service\Message\QuickCallUserService;
use Hyperf\HttpServer\Annotation\Middleware;
use Hyperf\HttpServer\Annotation\Middlewares;
use App\Middleware\UserActMiddleware;
use App\Middleware\JTAuthMiddleware;
use App\Middleware\CorsMiddleware;
use App\Service\Message\AutoMsgDelService;
use App\Service\Message\AutoMsgInfoService;
use App\Service\Message\AutoMsgSubmitService;
use App\Service\Message\ChatInfoService;
use App\Service\Message\ChatQuickService;
use App\Service\Message\ChatStartService;
use App\Service\Message\ChatUsersService;
use App\Service\Message\NewNoticeService;
use App\Service\Message\OfficialUsersService;
use App\Service\Message\RecUserListService;
use App\Service\Message\v1_0_4\ChatQuickService as V1_0_4ChatQuickService;
use App\Service\Message\v1_0_4\OnlineRecShowService;
use App\Service\Message\v1_0_4\OnlineRecUserService;
use App\Service\Message\v1_0_4\RecUserListService as V1_0_4RecUserListService;
use App\Service\Message\v1_1_0\GiftListService;
use App\Service\Message\v1_1_0\GiftSendService;
use App\Service\Message\v1_1_0\QuickcallInfoService;
use App\Service\Message\v1_1_0\QuickCallService;
use App\Service\Message\v1_1_2\QuickCallService as V1_1_2QuickCallService;
use App\Service\Message\v1_1_2\AutoMsgDelService as V1_1_2AutoMsgDelService;
use App\Service\Message\v1_1_2\AutoMsgInfoService as V1_1_2AutoMsgInfoService;
use App\Service\Message\v1_1_2\AutoMsgSubmitService as V1_1_2AutoMsgSubmitService;
use App\Service\Message\v1_1_4\ChatChargeService;
use App\Service\Message\v1_1_4\ChatInfoService as V1_1_4ChatInfoService;
use App\Service\Message\v1_1_8\QuickMsgService;
use App\Service\Message\v1_2_1\ChatInfoService as V1_2_1ChatInfoService;
use App\Service\Message\v1_2_1\CloseFriendService;
use App\Service\Message\v1_2_1\SuperChatService;
use App\Service\Message\v1_2_2\CloseDetailService;
use App\Service\Message\v1_2_7\CallCommentInfoService;
use App\Service\Message\v1_2_7\CallCommentService;
use App\Service\Message\v1_2_7\MsgTagsService;
use App\Service\Message\v1_2_7\WechatApplyOpService;
use App\Service\Message\v1_2_8\GiftListService as V1_2_8GiftListService;
use App\Service\Message\v1_3_0\FilterMsgAccountsService;
use App\Service\Message\v1_3_0\RecHostListService;
use App\Service\Message\v1_3_0\SendGreetService;
use App\Service\Message\v1_3_4\GreetWordsService;
use App\Service\Message\v1_3_4\LeakCallService;
use App\Service\Message\v1_4_0\ChatInfoService as V1_4_0ChatInfoService;
use App\Service\Message\VoiceCallListService;
use Hyperf\HttpServer\Annotation\RequestMapping;
use Hyperf\HttpServer\Annotation\Controller;

/**
 * @Controller(prefix="message")
 * @Middleware(JTAuthMiddleware::class)
 */
class MessageController extends AbstractController
{
    /**
     * 开启聊天
     * @RequestMapping(path="chat/start", methods="post")
     * @Middleware(UserActMiddleware::class)
     */
    public function start_chat(ChatStartService $service)
    {
        return $service->response();
    }

    /**
     * 推荐用户
     * @RequestMapping(path="user/rec_list", methods="post")
     * 
     */
    public function rec_user(RecUserListService $service)
    {
        return $service->response();
    }

    /**
     * 聊友列表信息
     * @RequestMapping(path="chat/users_info", methods="post")
     * 
     */
    public function chat_users(ChatUsersService $service)
    {
        return $service->response();
    }

    /**
     * 聊天框信息
     * @RequestMapping(path="chat/info", methods="post")
     * 
     */
    public function chat_info(ChatInfoService $service)
    {
        return $service->response();
    }

    /**
     * 聊天框信息
     * @RequestMapping(path="v1_1_4/chat/info", methods="post")
     * 
     */
    public function v1_1_4_chat_info(V1_1_4ChatInfoService $service)
    {
        return $service->response();
    }

    /**
     * 通话记录
     * @RequestMapping(path="voicecall/list", methods="post")
     * 
     */
    public function voicecall_list(VoiceCallListService $service)
    {
        return $service->response();
    }

    /**
     * 一键打招呼
     * @RequestMapping(path="chat/quick", methods="post")
     * @Middleware(UserActMiddleware::class)
     */
    public function chat_quick(ChatQuickService $service)
    {
        return $service->response();
    }

    /**
     * 新消息提醒
     * @RequestMapping(path="notice/new", methods="post")
     * 
     */
    public function notice_new(NewNoticeService $service)
    {
        return $service->response();
    }

    /**
     * 自动聊天消息设置信息
     * @RequestMapping(path="auto_msg/info", methods="post")
     * 
     */
    public function auto_msg_info(AutoMsgInfoService $service)
    {
        return $service->response();
    }

    /**
     * 自动聊天消息设置提交
     * @RequestMapping(path="auto_msg/submit", methods="post")
     * 
     */
    public function auto_msg_submit(AutoMsgSubmitService $service)
    {
        return $service->response();
    }

    /**
     * 自动聊天消息删除
     * @RequestMapping(path="auto_msg/delete", methods="post")
     * 
     */
    public function auto_msg_del(AutoMsgDelService $service)
    {
        return $service->response();
    }

    /**
     * 一键搭讪 - 打招呼
     * @RequestMapping(path="v1_0_4/chat/quick", methods="post")
     * @Middleware(UserActMiddleware::class)
     */
    public function chat_quick_v1_0_4(V1_0_4ChatQuickService $service)
    {
        return $service->response();
    }

    /**
     * 一键搭讪 - 推荐用户
     * @RequestMapping(path="v1_0_4/user/rec_list", methods="post")
     * 
     */
    public function rec_user_v1_0_4(V1_0_4RecUserListService $service)
    {
        return $service->response();
    }

    /**
     * 消息中心 - 用户上线批量推荐
     * @RequestMapping(path="v1_0_4/user/online_rec", methods="post")
     * 
     */
    public function online_rec_user_v1_0_4(OnlineRecUserService $service)
    {
        return $service->response();
    }

    /**
     * 消息中心 - 用户上线新消息
     * @RequestMapping(path="v1_0_4/user/show_rec", methods="post")
     * 
     */
    public function online_rec_show(OnlineRecShowService $service)
    {
        return $service->response();
    }

    /**
     * 送礼物
     * @RequestMapping(path="v1_1_0/gift/send", methods="post")
     * 
     */
    public function gift_send(GiftSendService $service)
    {
        return $service->response();
    }

    /**
     * 随心聊
     * @RequestMapping(path="v1_1_0/quick_call", methods="post")
     * @Middleware(UserActMiddleware::class)
     */
    public function quick_call(QuickCallService $service)
    {
        return $service->response();
    }

    /**
     * 随心聊v1_2_2
     * @RequestMapping(path="v1_1_2/quick_call", methods="post")
     * @Middleware(UserActMiddleware::class)
     */
    public function quick_call_1_1_2(V1_1_2QuickCallService $service)
    {
        return $service->response();
    }

    /**
     * 随心聊用户
     * @RequestMapping(path="quick_call_user", methods="post")
     * @Middleware(UserActMiddleware::class)
     */
    public function quick_call_user(QuickCallUserService $service)
    {
        return $service->response();
    }

    /**
     * 随心聊入口信息
     * @RequestMapping(path="v1_1_0/quick_call/info", methods="post")
     * 
     */
    public function quick_call_info(QuickcallInfoService $service)
    {
        return $service->response();
    }

    /**
     * 礼物列表
     * @RequestMapping(path="v1_1_0/gift/list", methods="post")
     * 
     */
    public function gift_list(GiftListService $service)
    {
        return $service->response();
    }

    /**
     * 礼物列表
     * @RequestMapping(path="v1_2_8/gift/list", methods="post")
     * 
     */
    public function gift_list_1_2_8(V1_2_8GiftListService $service)
    {
        return $service->response();
    }

    /**
     * 官方聊天列表（陪聊系统）
     * @RequestMapping(path="im/official_users", methods="post")
     * @Middleware(CorsMiddleware::class)
     */
    public function official_users(OfficialUsersService $service)
    {
        return $service->response();
    }

    /**
     * 自动打消息页面信息
     * @RequestMapping(path="v1_1_2/auto_msg/set_info", methods="post")
     * 
     */
    public function v1_1_2_auto_msg(V1_1_2AutoMsgInfoService $service)
    {
        return $service->response();
    }

    /**
     * 自动打消息保存提交
     * @RequestMapping(path="v1_1_2/auto_msg/submit", methods="post")
     * 
     */
    public function v1_1_2_auto_msg_submit(V1_1_2AutoMsgSubmitService $service)
    {
        return $service->response();
    }

    /**
     * 自动打消息删除
     * @RequestMapping(path="v1_1_2/auto_msg/del", methods="post")
     * 
     */
    public function v1_1_2_auto_msg_del(V1_1_2AutoMsgDelService $service)
    {
        return $service->response();
    }

    /**
     * 聊天收费检测
     * @RequestMapping(path="v1_1_4/chat/charge", methods="post")
     * @Middleware(UserActMiddleware::class)
     */
    public function chat_charge(ChatChargeService $service)
    {
        return $service->response();
    }

    /**
     * 快速回复消息
     * @RequestMapping(path="v1_1_8/quick_msg", methods="post")
     * 
     */
    public function quick_msg(QuickMsgService $service)
    {
        return $service->response();
    }

    /**
     * 密友列表
     * @RequestMapping(path="v1_2_1/close_friend", methods="post")
     * 
     */
    public function close_friend(CloseFriendService $service)
    {
        return $service->response();
    }

    /**
     * 聊天框信息
     * @RequestMapping(path="v1_2_1/chat/info", methods="post")
     * 
     */
    public function v1_2_1_chat_info(V1_2_1ChatInfoService $service)
    {
        return $service->response();
    }

    /**
     * 搭讪聊天
     * @RequestMapping(path="v1_2_1/super_chat", methods="post")
     * 
     */
    public function v1_2_1_super_chat(SuperChatService $service)
    {
        return $service->response();
    }

    /**
     * 亲密值详情
     * @RequestMapping(path="v1_2_2/close_detail", methods="post")
     * 
     */
    public function close_detail(CloseDetailService $service)
    {
        return $service->response();
    }

    /**
     * 消息列表标签
     * @RequestMapping(path="v1_2_7/msg_tags", methods="post")
     * 
     */
    public function msg_tags(MsgTagsService $service)
    {
        return $service->response();
    }

    /**
     * 提交通话评价
     * @RequestMapping(path="v1_2_7/call/comment", methods="post")
     * 
     */
    public function call_comment(CallCommentService $service)
    {
        return $service->response();
    }

    /**
     * 评价详情
     * @RequestMapping(path="v1_2_7/call/comment_info", methods="post")
     * 
     */
    public function call_comment_info(CallCommentInfoService $service)
    {
        return $service->response();
    }

    /**
     * 微信申请操作（同意或拒绝）
     * @RequestMapping(path="v1_2_7/wechat_apply/op", methods="post")
     * 
     */
    public function wechat_apply_op(WechatApplyOpService $service)
    {
        return $service->response();
    }

    /**
     * 今日缘分 - 主播列表
     * @RequestMapping(path="v1_3_0/rec_host", methods="post")
     * 
     */
    public function rec_host(RecHostListService $service)
    {
        return $service->response();
    }

    /**
     * 今日缘分 - 打招呼
     * @RequestMapping(path="v1_3_0/send_greet", methods="post")
     * 
     */
    public function send_greet(SendGreetService $service)
    {
        return $service->response();
    }

    /**
     * 过滤未交互过的融云账号
     * @RequestMapping(path="v1_3_0/filter_msg", methods="post")
     * 
     */
    public function filter_msg(FilterMsgAccountsService $service)
    {
        return $service->response();
    }

    /**
     * 过滤未交互过的融云账号
     * @RequestMapping(path="v1_3_4/greet_words", methods="post")
     * 
     */
    public function greet_words(GreetWordsService $service)
    {
        return $service->response();
    }

    /**
     * 漏接电话列表
     * @RequestMapping(path="v1_3_4/leak_calls", methods="post")
     * 
     */
    public function leak_calls(LeakCallService $service)
    {
        return $service->response();
    }

    /**
     * 聊天框信息
     * @RequestMapping(path="v1_4_0/chat/info", methods="post")
     * 
     */
    public function v1_4_0_chat_info(V1_4_0ChatInfoService $service)
    {
        return $service->response();
    }
}
